Lower-casify some macros, and rename kernel_mode() to guest_kernel_mode().
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 8 Mar 2006 14:02:43 +0000 (15:02 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 8 Mar 2006 14:02:43 +0000 (15:02 +0100)
Fix the macro so that it evaluates false if the given register context is
not a valid guest context.

Signed-off-by: Keir Fraser <keir@xensource.com>
18 files changed:
xen/arch/x86/dom0_ops.c
xen/arch/x86/domain.c
xen/arch/x86/hvm/hvm.c
xen/arch/x86/hvm/vioapic.c
xen/arch/x86/hvm/vmx/vmcs.c
xen/arch/x86/traps.c
xen/arch/x86/x86_32/domain_page.c
xen/arch/x86/x86_32/seg_fixup.c
xen/arch/x86/x86_32/traps.c
xen/arch/x86/x86_64/traps.c
xen/include/asm-x86/debugger.h
xen/include/asm-x86/hvm/domain.h
xen/include/asm-x86/hvm/support.h
xen/include/asm-x86/hvm/vioapic.h
xen/include/asm-x86/regs.h
xen/include/asm-x86/shadow.h
xen/include/asm-x86/x86_32/regs.h
xen/include/asm-x86/x86_64/regs.h

index c0d8472c17ca5f920cb18f587949d41d5a6956c8..cfb8eba34843a1b4a3ec302a95e5a95062deefa9 100644 (file)
@@ -458,7 +458,7 @@ void arch_getdomaininfo_ctxt(
 {
     memcpy(c, &v->arch.guest_context, sizeof(*c));
 
-    if ( HVM_DOMAIN(v) )
+    if ( hvm_guest(v) )
     {
         hvm_store_cpu_guest_regs(v, &c->user_regs);
         hvm_store_cpu_guest_ctrl_regs(v, c->ctrlreg);
@@ -473,9 +473,9 @@ void arch_getdomaininfo_ctxt(
     c->flags = 0;
     if ( test_bit(_VCPUF_fpu_initialised, &v->vcpu_flags) )
         c->flags |= VGCF_I387_VALID;
-    if ( KERNEL_MODE(v, &v->arch.guest_context.user_regs) )
+    if ( guest_kernel_mode(v, &v->arch.guest_context.user_regs) )
         c->flags |= VGCF_IN_KERNEL;
-    if ( HVM_DOMAIN(v) )
+    if ( hvm_guest(v) )
         c->flags |= VGCF_HVM_GUEST;
 
     c->ctrlreg[3] = pagetable_get_paddr(v->arch.guest_table);
index fecf92f93ffeb58c217e1d0e8f15d93a260f7b15..745e8a2b5ef3e25a4f8721ce627b7486194425b6 100644 (file)
@@ -719,7 +719,7 @@ static void __context_switch(void)
                stack_regs,
                CTXT_SWITCH_STACK_BYTES);
         unlazy_fpu(p);
-        if ( !HVM_DOMAIN(p) )
+        if ( !hvm_guest(p) )
         {
             save_segments(p);
         }
@@ -748,7 +748,7 @@ static void __context_switch(void)
             loaddebug(&n->arch.guest_context, 7);
         }
 
-        if ( !HVM_DOMAIN(n) )
+        if ( !hvm_guest(n) )
         {
             set_int80_direct_trap(n);
             switch_kernel_stack(n, cpu);
@@ -812,7 +812,7 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
         /* Re-enable interrupts before restoring state which may fault. */
         local_irq_enable();
 
-        if ( !HVM_DOMAIN(next) )
+        if ( !hvm_guest(next) )
         {
             load_LDT(next);
             load_segments(next);
@@ -1030,7 +1030,7 @@ void domain_relinquish_resources(struct domain *d)
             v->arch.guest_table_user = mk_pagetable(0);
         }
 
-        if ( HVM_DOMAIN(v) )
+        if ( hvm_guest(v) )
             hvm_relinquish_guest_resources(v);
     }
 
index d0f9ccdffba45254c3889e92a6cd176f192ed474..e9669983d45169bc41c2970a0821427321592ad1 100644 (file)
@@ -186,7 +186,7 @@ void hvm_setup_platform(struct domain* d)
 {
     struct hvm_domain *platform;
 
-    if ( !HVM_DOMAIN(current) || (current->vcpu_id != 0) )
+    if ( !hvm_guest(current) || (current->vcpu_id != 0) )
         return;
 
     shadow_direct_map_init(d);
@@ -324,7 +324,7 @@ int hvm_bringup_ap(int vcpuid, int trampoline_vector)
     int rc = 0;
 
     /* current must be HVM domain BSP */
-    if ( !(HVM_DOMAIN(bsp) && bsp->vcpu_id == 0) ) {
+    if ( !(hvm_guest(bsp) && bsp->vcpu_id == 0) ) {
         printk("Not calling hvm_bringup_ap from BSP context.\n");
         domain_crash_synchronous();
     }
index f3bde8d9ba5bebf83a339e10b3e811edbd54f6df..28a18900853ce7e062f25c3b8f40011d8e7600cc 100644 (file)
@@ -52,7 +52,7 @@ static void ioapic_enable(hvm_vioapic_t *s, uint8_t enable)
         s->flags &= ~IOAPIC_ENABLE_FLAG;
 }
 
-#ifdef HVM_DOMAIN_SAVE_RESTORE
+#ifdef hvm_guest_SAVE_RESTORE
 void ioapic_save(QEMUFile* f, void* opaque)
 {
     printk("no implementation for ioapic_save\n");
index 9c904e35ba7eb7729fdb251dde89b853d6f04ba7..b75507506355854b02ff9de36e140801ef9d492c 100644 (file)
@@ -79,7 +79,7 @@ static void vmx_smp_clear_vmcs(void *info)
 {
     struct vcpu *v = (struct vcpu *)info;
 
-    ASSERT(HVM_DOMAIN(v));
+    ASSERT(hvm_guest(v));
 
     if (v->arch.hvm_vmx.launch_cpu == smp_processor_id())
         __vmpclear(virt_to_maddr(v->arch.hvm_vmx.vmcs));
@@ -87,7 +87,7 @@ static void vmx_smp_clear_vmcs(void *info)
 
 void vmx_request_clear_vmcs(struct vcpu *v)
 {
-    ASSERT(HVM_DOMAIN(v));
+    ASSERT(hvm_guest(v));
 
     if (v->arch.hvm_vmx.launch_cpu == smp_processor_id())
         __vmpclear(virt_to_maddr(v->arch.hvm_vmx.vmcs));
index 8a665de19736d16467157f848bfb9435ffa3a5b2..376a2fe2563f85117853f003e7303ff08cfbed7d 100644 (file)
@@ -132,10 +132,10 @@ static void show_guest_stack(struct cpu_user_regs *regs)
     int i;
     unsigned long *stack, addr;
 
-    if ( HVM_DOMAIN(current) )
+    if ( hvm_guest(current) )
         return;
 
-    if ( VM86_MODE(regs) )
+    if ( vm86_mode(regs) )
     {
         stack = (unsigned long *)((regs->ss << 4) + (regs->esp & 0xffff));
         printk("Guest stack trace from ss:sp = %04x:%04x (VM86)\n   ",
@@ -254,7 +254,7 @@ void show_stack(struct cpu_user_regs *regs)
     unsigned long *stack = ESP_BEFORE_EXCEPTION(regs), addr;
     int i;
 
-    if ( GUEST_MODE(regs) )
+    if ( guest_mode(regs) )
         return show_guest_stack(regs);
 
     printk("Xen stack trace from "__OP"sp=%p:\n   ", stack);
@@ -333,7 +333,7 @@ static inline int do_trap(int trapnr, char *str,
 
     DEBUGGER_trap_entry(trapnr, regs);
 
-    if ( !GUEST_MODE(regs) )
+    if ( !guest_mode(regs) )
         goto xen_fault;
 
     ti = &current->arch.guest_context.trap_ctxt[trapnr];
@@ -399,7 +399,7 @@ asmlinkage int do_int3(struct cpu_user_regs *regs)
 
     DEBUGGER_trap_entry(TRAP_int3, regs);
 
-    if ( !GUEST_MODE(regs) )
+    if ( !guest_mode(regs) )
     {
         DEBUGGER_trap_fatal(TRAP_int3, regs);
         show_registers(regs);
@@ -433,7 +433,7 @@ void propagate_page_fault(unsigned long addr, u16 error_code)
 
     /* Re-set error_code.user flag appropriately for the guest. */
     error_code &= ~4;
-    if ( !KERNEL_MODE(v, guest_cpu_user_regs()) )
+    if ( !guest_kernel_mode(v, guest_cpu_user_regs()) )
         error_code |= 4;
 
     ti = &v->arch.guest_context.trap_ctxt[TRAP_page_fault];
@@ -474,7 +474,7 @@ static int handle_gdt_ldt_mapping_fault(
         if ( unlikely(ret == 0) )
         {
             /* In hypervisor mode? Leave it to the #PF handler to fix up. */
-            if ( !GUEST_MODE(regs) )
+            if ( !guest_mode(regs) )
                 return 0;
             /* In guest mode? Propagate #PF to guest, with adjusted %cr2. */
             propagate_page_fault(
@@ -506,7 +506,7 @@ static int fixup_page_fault(unsigned long addr, struct cpu_user_regs *regs)
 
     if ( unlikely(IN_HYPERVISOR_RANGE(addr)) )
     {
-        if ( shadow_mode_external(d) && GUEST_MODE(regs) )
+        if ( shadow_mode_external(d) && guest_mode(regs) )
             return shadow_fault(addr, regs);
         if ( (addr >= GDT_LDT_VIRT_START) && (addr < GDT_LDT_VIRT_END) )
             return handle_gdt_ldt_mapping_fault(
@@ -528,7 +528,7 @@ static int fixup_page_fault(unsigned long addr, struct cpu_user_regs *regs)
             return EXCRET_fault_fixed;
         }
 
-        if ( KERNEL_MODE(v, regs) &&
+        if ( guest_kernel_mode(v, regs) &&
              /* Protection violation on write? No reserved-bit violation? */
              ((regs->error_code & 0xb) == 0x3) &&
              ptwr_do_page_fault(d, addr, regs) )
@@ -564,7 +564,7 @@ asmlinkage int do_page_fault(struct cpu_user_regs *regs)
     if ( unlikely((rc = fixup_page_fault(addr, regs)) != 0) )
         return rc;
 
-    if ( unlikely(!GUEST_MODE(regs)) )
+    if ( unlikely(!guest_mode(regs)) )
     {
         if ( likely((fixup = search_exception_table(regs->eip)) != 0) )
         {
@@ -620,7 +620,7 @@ static inline int guest_io_okay(
 #define TOGGLE_MODE() ((void)0)
 #endif
 
-    if ( v->arch.iopl >= (KERNEL_MODE(v, regs) ? 1 : 3) )
+    if ( v->arch.iopl >= (guest_kernel_mode(v, regs) ? 1 : 3) )
         return 1;
 
     if ( v->arch.iobmp_limit > (port + bytes) )
@@ -849,7 +849,7 @@ static int emulate_privileged_op(struct cpu_user_regs *regs)
 
     case 0xfa: /* CLI */
     case 0xfb: /* STI */
-        if ( v->arch.iopl < (KERNEL_MODE(v, regs) ? 1 : 3) )
+        if ( v->arch.iopl < (guest_kernel_mode(v, regs) ? 1 : 3) )
             goto fail;
         /*
          * This is just too dangerous to allow, in my opinion. Consider if the
@@ -868,7 +868,7 @@ static int emulate_privileged_op(struct cpu_user_regs *regs)
     }
 
     /* Remaining instructions only emulated from guest kernel. */
-    if ( !KERNEL_MODE(v, regs) )
+    if ( !guest_kernel_mode(v, regs) )
         goto fail;
 
     /* Privileged (ring 0) instructions. */
@@ -1070,7 +1070,7 @@ asmlinkage int do_general_protection(struct cpu_user_regs *regs)
     if ( regs->error_code & 1 )
         goto hardware_gp;
 
-    if ( !GUEST_MODE(regs) )
+    if ( !guest_mode(regs) )
         goto gp_in_kernel;
 
     /*
@@ -1097,7 +1097,7 @@ asmlinkage int do_general_protection(struct cpu_user_regs *regs)
     {
         /* This fault must be due to <INT n> instruction. */
         ti = &current->arch.guest_context.trap_ctxt[regs->error_code>>3];
-        if ( PERMIT_SOFTINT(TI_GET_DPL(ti), v, regs) )
+        if ( permit_softint(TI_GET_DPL(ti), v, regs) )
         {
             tb->flags = TBF_EXCEPTION;
             regs->eip += 2;
@@ -1305,7 +1305,7 @@ asmlinkage int do_debug(struct cpu_user_regs *regs)
 
     DEBUGGER_trap_entry(TRAP_debug, regs);
 
-    if ( !GUEST_MODE(regs) )
+    if ( !guest_mode(regs) )
     {
         /* Clear TF just for absolute sanity. */
         regs->eflags &= ~EF_TF;
index f3125bd1d3225ec517026dba2e0315163a8d1fdb..243a81fac55a1800366e658b71dd9f8c5de9eff5 100644 (file)
@@ -28,7 +28,7 @@ static inline struct vcpu *mapcache_current_vcpu(void)
      * then it means we are running on the idle domain's page table and must
      * therefore use its mapcache.
      */
-    if ( unlikely(!pagetable_get_pfn(v->arch.guest_table)) && !HVM_DOMAIN(v) )
+    if ( unlikely(!pagetable_get_pfn(v->arch.guest_table)) && !hvm_guest(v) )
     {
         /* If we really are idling, perform lazy context switch now. */
         if ( (v = idle_vcpu[smp_processor_id()]) == current )
index 65ec299af176d4e82b898151cbd63b774c1205a4..352a3e52a71a02a54fa93aa32728e6884ff15c29 100644 (file)
@@ -280,7 +280,7 @@ int gpf_emulate_4gb(struct cpu_user_regs *regs)
     int            gs_override = 0;
 
     /* WARNING: We only work for ring-3 segments. */
-    if ( unlikely(VM86_MODE(regs)) || unlikely(!RING_3(regs)) )
+    if ( unlikely(vm86_mode(regs)) || unlikely(!ring_3(regs)) )
     {
         DPRINTK("Taken fault at bad CS %04x\n", regs->cs);
         goto fail;
index 0e2af9f4c1347dab89f7042e0e12dc95949a3408..6fc271867c9803c8e82290c58b83cb9fd31e2239 100644 (file)
@@ -24,7 +24,7 @@ void show_registers(struct cpu_user_regs *regs)
     char taint_str[TAINT_STRING_MAX_LEN];
     const char *context;
 
-    if ( HVM_DOMAIN(current) && GUEST_MODE(regs) )
+    if ( hvm_guest(current) && guest_mode(regs) )
     {
         context = "hvm";
         hvm_store_cpu_guest_regs(current, &fault_regs);
@@ -32,9 +32,9 @@ void show_registers(struct cpu_user_regs *regs)
     }
     else
     {
-        context = GUEST_MODE(regs) ? "guest" : "hypervisor";
+        context = guest_mode(regs) ? "guest" : "hypervisor";
 
-        if ( !GUEST_MODE(regs) )
+        if ( !guest_mode(regs) )
         {
             fault_regs.esp = (unsigned long)&regs->esp;
             fault_regs.ss = read_segment_register(ss);
@@ -53,7 +53,7 @@ void show_registers(struct cpu_user_regs *regs)
            print_tainted(taint_str));
     printk("CPU:    %d\nEIP:    %04x:[<%08x>]",
            smp_processor_id(), fault_regs.cs, fault_regs.eip);
-    if ( !GUEST_MODE(regs) )
+    if ( !guest_mode(regs) )
         print_symbol(" %s", fault_regs.eip);
     printk("\nEFLAGS: %08x   CONTEXT: %s\n", fault_regs.eflags, context);
     printk("eax: %08x   ebx: %08x   ecx: %08x   edx: %08x\n",
@@ -172,17 +172,17 @@ unsigned long do_iret(void)
     regs->esp += 4;
     regs->eflags = (eflags & ~X86_EFLAGS_IOPL) | X86_EFLAGS_IF;
 
-    if ( VM86_MODE(regs) )
+    if ( vm86_mode(regs) )
     {
         /* Return to VM86 mode: pop and restore ESP,SS,ES,DS,FS and GS. */
         if ( __copy_from_user(&regs->esp, (void __user *)regs->esp, 24) )
             domain_crash_synchronous();
     }
-    else if ( unlikely(RING_0(regs)) )
+    else if ( unlikely(ring_0(regs)) )
     {
         domain_crash_synchronous();
     }
-    else if ( !RING_1(regs) )
+    else if ( !ring_1(regs) )
     {
         /* Return to ring 2/3: pop and restore ESP and SS. */
         if ( __copy_from_user(&regs->esp, (void __user *)regs->esp, 8) )
index cd0ada0a9ebabd1852a5545e1710c978ca7aa143..ef1f21cb0901ad5256b3dbefc4c5b3af4f7c9bdf 100644 (file)
@@ -24,7 +24,7 @@ void show_registers(struct cpu_user_regs *regs)
     char taint_str[TAINT_STRING_MAX_LEN];
     const char *context;
 
-    if ( HVM_DOMAIN(current) && GUEST_MODE(regs) )
+    if ( hvm_guest(current) && guest_mode(regs) )
     {
         context = "hvm";
         hvm_store_cpu_guest_regs(current, &fault_regs);
@@ -32,7 +32,7 @@ void show_registers(struct cpu_user_regs *regs)
     }
     else
     {
-        context = GUEST_MODE(regs) ? "guest" : "hypervisor";
+        context = guest_mode(regs) ? "guest" : "hypervisor";
         fault_crs[0] = read_cr0();
         fault_crs[3] = read_cr3();
         fault_regs.ds = read_segment_register(ds);
@@ -46,7 +46,7 @@ void show_registers(struct cpu_user_regs *regs)
            print_tainted(taint_str));
     printk("CPU:    %d\nRIP:    %04x:[<%016lx>]",
            smp_processor_id(), fault_regs.cs, fault_regs.rip);
-    if ( !GUEST_MODE(regs) )
+    if ( !guest_mode(regs) )
         print_symbol(" %s", fault_regs.rip);
     printk("\nRFLAGS: %016lx   CONTEXT: %s\n", fault_regs.rflags, context);
     printk("rax: %016lx   rbx: %016lx   rcx: %016lx\n",
index d11cc853666ca75fc3a3bc6af8a76d9b6c57e4c3..3e5debebd8874394ec0a84c8ff21a63414e61499 100644 (file)
@@ -88,7 +88,7 @@ static inline int debugger_trap_entry(
 {
     struct vcpu *v = current;
 
-    if ( KERNEL_MODE(v, regs) &&
+    if ( guest_kernel_mode(v, regs) &&
          test_bit(_DOMF_debugging, &v->domain->domain_flags) &&
          ((vector == TRAP_int3) || (vector == TRAP_debug)) )
     {
index 812f91d76d153b7d8965426edb8e58f57aed4e6f..23c03422976f7ef4dfb88ffd00cdbcadbe602c19 100644 (file)
@@ -19,8 +19,8 @@
  *
  */
 
-#ifndef __ASM_X86_HVM_DOMAIN_H__
-#define __ASM_X86_HVM_DOMAIN_H__
+#ifndef __ASM_X86_hvm_guest_H__
+#define __ASM_X86_hvm_guest_H__
 
 #include <asm/e820.h>
 #include <asm/hvm/vpic.h>
@@ -49,5 +49,5 @@ struct hvm_domain {
     char                   pbuf[HVM_PBUF_SIZE];
 };
 
-#endif /* __ASM_X86_HVM_DOMAIN_H__ */
+#endif /* __ASM_X86_hvm_guest_H__ */
 
index 6ab26b295f8be6e9084fd00abcb03503a216e5d9..b6f22e09adbac7540d1408bc5e96d113e41913b7 100644 (file)
@@ -32,7 +32,7 @@
 #define HVM_DEBUG 0
 #endif
 
-#define        HVM_DOMAIN(v)   ((v)->arch.guest_context.flags & VGCF_HVM_GUEST)
+#define        hvm_guest(v)    ((v)->arch.guest_context.flags & VGCF_HVM_GUEST)
 
 static inline shared_iopage_t *get_sp(struct domain *d)
 {
index 6b72f95e5d8d4bf225d86ff56cc04abb97c8c826..ff6d56eb87987d29d1fd94a004bb15e63b0f6593 100644 (file)
@@ -116,7 +116,7 @@ int hvm_vioapic_add_lapic(struct vlapic *vlapic, struct vcpu *v);
 
 void ioapic_update_EOI(struct domain *d, int vector);
 
-#ifdef HVM_DOMAIN_SAVE_RESTORE
+#ifdef hvm_guest_SAVE_RESTORE
 void ioapic_save(QEMUFile* f, void* opaque);
 int ioapic_load(QEMUFile* f, void* opaque, int version_id);
 #endif
index 55ac21b1d38e4aab780d39bd46fdd90e160b6a74..8ba10c4722488b4afaeb6cdcf35115f5052c355d 100644 (file)
@@ -31,17 +31,17 @@ enum EFLAGS {
     EF_ID   = 0x00200000,   /* id */
 };
 
-#define GUEST_MODE(r)                                                         \
+#define guest_mode(r)                                                         \
 ({                                                                            \
     unsigned long diff = (char *)guest_cpu_user_regs() - (char *)(r);         \
     /* Frame pointer must point into current CPU stack. */                    \
     ASSERT(diff < STACK_SIZE);                                                \
     /* If a guest frame, it must be have guest privs (unless HVM guest).   */ \
     /* We permit CS==0 which can come from an uninitialised trap entry. */    \
-    ASSERT((diff != 0) || VM86_MODE(r) || ((r->cs&3) >= GUEST_KERNEL_RPL) ||  \
-           (r->cs == 0) || HVM_DOMAIN(current));                              \
+    ASSERT((diff != 0) || vm86_mode(r) || ((r->cs&3) >= GUEST_KERNEL_RPL) ||  \
+           (r->cs == 0) || hvm_guest(current));                              \
     /* If not a guest frame, it must be a hypervisor frame. */                \
-    ASSERT((diff == 0) || (!VM86_MODE(r) && (r->cs == __HYPERVISOR_CS)));     \
+    ASSERT((diff == 0) || (!vm86_mode(r) && (r->cs == __HYPERVISOR_CS)));     \
     /* Return TRUE if it's a guest frame. */                                  \
     (diff == 0);                                                              \
 })
index a9e3789f8df1a0f05c77529a8ea24b2e8f4aeef1..5a520298403a79f107ed75b263409c01adf641d6 100644 (file)
@@ -1646,7 +1646,7 @@ shadow_mode_page_writable(unsigned long va, struct cpu_user_regs *regs, unsigned
           || (va >= HYPERVISOR_VIRT_END)
 #endif
              ) &&
-         KERNEL_MODE(v, regs) )
+         guest_kernel_mode(v, regs) )
         return 1;
 
     return 0;
@@ -1700,7 +1700,7 @@ static inline void update_pagetables(struct vcpu *v)
     struct domain *d = v->domain;
     int paging_enabled;
 
-    if ( HVM_DOMAIN(v) )
+    if ( hvm_guest(v) )
         paging_enabled = hvm_paging_enabled(v);
     else
         // HACK ALERT: there's currently no easy way to figure out if a domU
index f2bdb3606e8479df8f6d6a93cb3eb394b9883105..5124bce79bf5746de2b4c7a23be669010519e7a9 100644 (file)
@@ -4,16 +4,17 @@
 #include <xen/types.h>
 #include <public/xen.h>
 
-#define VM86_MODE(_r) ((_r)->eflags & EF_VM)
-#define RING_0(_r)    (((_r)->cs & 3) == 0)
-#define RING_1(_r)    (((_r)->cs & 3) == 1)
-#define RING_2(_r)    (((_r)->cs & 3) == 2)
-#define RING_3(_r)    (((_r)->cs & 3) == 3)
+#define vm86_mode(r) ((r)->eflags & EF_VM)
+#define ring_0(r)    (((r)->cs & 3) == 0)
+#define ring_1(r)    (((r)->cs & 3) == 1)
+#define ring_2(r)    (((r)->cs & 3) == 2)
+#define ring_3(r)    (((r)->cs & 3) == 3)
 
-#define KERNEL_MODE(_e, _r) (!VM86_MODE(_r) && RING_1(_r))
+#define guest_kernel_mode(v, r)   \
+    (!vm86_mode(r) && ring_1(r))
 
-#define PERMIT_SOFTINT(_dpl, _e, _r) \
-    ((_dpl) >= (VM86_MODE(_r) ? 3 : ((_r)->cs & 3)))
+#define permit_softint(dpl, v, r) \
+    ((dpl) >= (vm86_mode(r) ? 3 : ((r)->cs & 3)))
 
 /* Number of bytes of on-stack execution state to be context-switched. */
 #define CTXT_SWITCH_STACK_BYTES (sizeof(struct cpu_user_regs))
index 38d31db1bb45580614f783304e37daf3f8d27956..191f467343380435163f860b257f1c1b50c3f4f6 100644 (file)
@@ -4,16 +4,17 @@
 #include <xen/types.h>
 #include <public/xen.h>
 
-#define VM86_MODE(_r) (0) /* No VM86 support in long mode. */
-#define RING_0(_r)    (((_r)->cs & 3) == 0)
-#define RING_1(_r)    (((_r)->cs & 3) == 1)
-#define RING_2(_r)    (((_r)->cs & 3) == 2)
-#define RING_3(_r)    (((_r)->cs & 3) == 3)
+#define vm86_mode(r) (0) /* No VM86 support in long mode. */
+#define ring_0(r)    (((r)->cs & 3) == 0)
+#define ring_1(r)    (((r)->cs & 3) == 1)
+#define ring_2(r)    (((r)->cs & 3) == 2)
+#define ring_3(r)    (((r)->cs & 3) == 3)
 
-#define KERNEL_MODE(_e, _r) ((_e)->arch.flags & TF_kernel_mode)
+#define guest_kernel_mode(v, r)   \
+    (ring_3(r) && ((v)->arch.flags & TF_kernel_mode))
 
-#define PERMIT_SOFTINT(_dpl, _e, _r) \
-    ((_dpl) >= (KERNEL_MODE(_e, _r) ? 1 : 3))
+#define permit_softint(dpl, v, r) \
+    ((dpl) >= (guest_kernel_mode(v, r) ? 1 : 3))
 
 /* Number of bytes of on-stack execution state to be context-switched. */
 /* NB. Segment registers and bases are not saved/restored on x86/64 stack. */